package com.zerui.manager.web.vo;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.sql.Time;
import java.time.LocalDateTime;

@Data
@JsonInclude
public class DeviceTouchPageVO {

    @ApiModelProperty(value = "主键ID")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /**
     * 设备源自 1：IoT 2：ICC
     */
    @ApiModelProperty("设备源自 1：IoT 2：ICC ")
    private Integer deviceFrom;
    /**
     * 源记录-设备ID
     */
    @ApiModelProperty("源记录-设备ID")
    private String deviceId;
    /**
     * 源记录-设备编号
     */
    @ApiModelProperty("源记录-设备编号")
    private String deviceCode;
    /**
     * 源记录-设备序列号
     */
    @ApiModelProperty("源记录-设备序列号")
    private String deviceSn;
    /**
     * 源记录-设备名称
     */
    @ApiModelProperty("源记录-设备名称")
    private String deviceName;
    /**
     * 源记录-设备厂商
     */
    @ApiModelProperty("源记录-设备厂商")
    private String deviceManufacturer;
    /**
     * 源记录-设备型号
     */
    @ApiModelProperty("源记录-设备型号")
    private String deviceModel;
    /**
     * 源记录-设备大类  8：门禁
     */
    @ApiModelProperty("源记录-设备大类  8：门禁")
    private String deviceCategory;
    /**
     * 源记录-设备IP地址
     */
    @ApiModelProperty("源记录-设备IP地址")
    private String deviceIp;
    /**
     * 设备账号及通道信息 JSON
     */
    @ApiModelProperty("设备账号及通道信息 JSON")
    private String deviceAccountChannel;
    /**
     * 源记录-分类编号
     */
    @ApiModelProperty("源记录-分类编号")
    private String typeCode;
    /**
     * 源记录-分类名称
     */
    @ApiModelProperty("源记录-分类名称")
    private String typeName;
    /**
     * 源记录-产品代码
     */
    @ApiModelProperty("源记录-产品代码")
    private String productCode;
    /**
     * 源记录-产品名称
     */
    @ApiModelProperty("源记录-产品名称")
    private String productName;
    /**
     * 源记录-节点类型
     */
    @ApiModelProperty("源记录-节点类型")
    private String nodeType;
    /**
     * 源记录-节点类型名称
     */
    @ApiModelProperty("源记录-节点类型名称")
    private String nodeTypeName;
    /**
     * 源记录-所属分组ID
     */
    @ApiModelProperty("源记录-所属分组ID")
    private String groupId;
    /**
     * 源记录-所属分组名称
     */
    @ApiModelProperty("源记录-所属分组名称")
    private String groupName;
    /**
     * 源记录-所属部门ID
     */
    @ApiModelProperty("源记录-所属部门ID")
    private String orgId;
    /**
     * 源记录-所属部门名称
     */
    @ApiModelProperty("源记录-所属部门名称")
    private String orgName;
    /**
     * 源记录-建筑编号
     */
    @ApiModelProperty("源记录-建筑编号")
    private String buildNo;
    /**
     * 源记录-建筑名称
     */
    @ApiModelProperty("源记录-建筑名称")
    private String buildName;
    /**
     * 源记录-楼层编码
     */
    @ApiModelProperty("源记录-楼层编码")
    private String levelNo;
    /**
     * 源记录-楼层名称
     */
    @ApiModelProperty("源记录-楼层名称")
    private String levelName;
    /**
     * 源记录-楼层编码
     */
    @ApiModelProperty("源记录-房间号")
    private String roomNo;
    /**
     * 源记录-楼层名称
     */
    @ApiModelProperty("源记录-房间名称")
    private String roomName;
    /**
     * 源记录-所在位置
     */
    @ApiModelProperty("源记录-所在位置")
    private String position;
    /**
     * 是否在线 0：离线 1：在线
     */
    @ApiModelProperty("是否在线 0：离线 1：在线")
    private Integer isOnline;
    /**
     * 上报时间
     */
    @ApiModelProperty("上报时间")
    private LocalDateTime createTime;

    // 其他扩展字段 表关联或自定义
    @ApiModelProperty(value = "运行状态 0：正常，1：告警")
    private Integer runStatus;

    @ApiModelProperty(value = "启用状态 0：启用，1：禁用")
    private Integer enableStatus;

    @ApiModelProperty("进出方向 0：进 1：出")
    private Integer access;

    @ApiModelProperty("定时任务开关 0：开 1：关")
    private Integer timedTaskStatus;

    @ApiModelProperty("定时任务开关 0：开 1：关")
    private String curfewStatus;

    @ApiModelProperty("结束时间")
    private Time endTime;

    @ApiModelProperty("开始时间")
    private Time startTime;

}
